package view;

import java.awt.Choice;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Iterator;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSeparator;
import javax.swing.JTextField;

import Both.Trajet;
import Both.Transport;
import Both.TypeTransport;
import Both.Ville;

import controleur.*;

/**
 * @author Blond Jeremie
 * 
 *         Description:
 * 
 *         cette class devra etre appeler par la class Fenetre1 elle a pour but
 *         de permettre d'ajouter un nouveau trajet ou d'en modifier un deja
 *         existant. Le titre de la fenetre est a revoir, car il faudrait que
 *         lorsque l'on appel la Fenetre2 en appuyant sur le bouton modifier de
 *         la Fenetre1, le titre de la Fenetre2 devienne "Modifier un trajet" et
 *         le bouton "Ajouter/Modifier" n'aurait que l'etiquette "Modifier". Et
 *         inversement si on appel la Fenetre2 en appuyant sur le bouton Ajouter
 *         de la Fenetre1.
 * 
 */
public class Fenetre2 extends JFrame {

    private Choice TypeTransChoice;
    private Choice VilleDepart;
    private Choice VilleDarrive;
    private Choice HeureDepart1;
    private Choice HeureDepart2;
    private Choice HeureDepart3;
    private Choice HeureDepart4;
    private Choice HeureDepart5;

    private Choice HeureDarrive1;
    private Choice HeureDarrive2;
    private Choice HeureDarrive3;
    private Choice HeureDarrive4;
    private Choice HeureDarrive5;

    private JTextField distance;
    private JTextField numTrans;
    private Choice NbrePlaceDispo;
    private JButton AjouterModifier;
    private JButton Annuler;
    private Trajet monTrajet;
    private int operationAFaire = 3;
    private JLabel infoLabel;
    private JLabel TypeTrans;
    private JLabel VilleDepartLabel;
    private JLabel VilleDarriveLabel;
    private JLabel HeureDepartLabel;
    private JLabel HeureDarriveLabel;
    private JLabel NbrePlaceDispoLabel;
    private JLabel distanceLabel;
    private JLabel numTransLabel;
    private JSeparator separator;
    private ToutFenetre tout;

    public Fenetre2(String titreFenetre2, ToutFenetre tout) {
        // on appelle le constructeur parent pour donner le titre "s" a la
        // fenetre 2
        super(titreFenetre2);
        this.tout = tout;
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        /* 1- Initialisation du container. */
        this.setLayout(new GridBagLayout());

        infoLabel = new JLabel("voici les informations du Trajet");

        TypeTrans = new JLabel("type du transport :");
        VilleDepartLabel = new JLabel("Ville Depart :");
        VilleDarriveLabel = new JLabel("Ville d'arrivé:");
        HeureDepartLabel = new JLabel("Date Depart :");

        HeureDarriveLabel = new JLabel("DateDarrive:");

        NbrePlaceDispoLabel = new JLabel("Nbre Place dipso :");
        distanceLabel = new JLabel("distance : ");
        distance = new JTextField("");
        numTransLabel = new JLabel("Numero du transport :");
        numTrans = new JTextField("");
        separator = new JSeparator();
        AjouterModifier = new JButton("");
        AjouterModifier
                .addActionListener(new ActionAjouterModifierTrajet(tout));
        Annuler = new JButton("Annuler");
        Annuler.addActionListener(new controleur.ActionAnnuler(tout));

        VilleDepart = new Choice();
        VilleDarrive = new Choice();
        ArrayList<Ville> listVille = Ville.allVille();
        Iterator<Ville> monIterateur = listVille.iterator();
        Ville temp;
        while (monIterateur.hasNext()) {
            temp = monIterateur.next();
            VilleDepart.add(temp.getVille());
            VilleDarrive.add(temp.getVille());
        }

        TypeTransChoice = new Choice();
        ArrayList<TypeTransport> listTypeTransport = TypeTransport.allType();
        Iterator<TypeTransport> monIterateur2 = listTypeTransport.iterator();
        TypeTransport temp2;
        while (monIterateur2.hasNext()) {
            temp2 = monIterateur2.next();
            TypeTransChoice.add(temp2.getTransportString());
        }

        NbrePlaceDispo = new Choice();

        for (int j = 0; j <= 150; j++) {
            NbrePlaceDispo.add("" + j);
        }

        HeureDarrive1 = new Choice();
        HeureDepart1 = new Choice();
        for (int j = 1; j <= 30; j++) {
            HeureDarrive1.add("" + j);
            HeureDepart1.add("" + j);
        }

        HeureDarrive2 = new Choice();
        HeureDepart2 = new Choice();
        for (int j = 1; j <= 12; j++) {
            HeureDarrive2.add("" + j);
            HeureDepart2.add("" + j);
        }

        HeureDarrive3 = new Choice();
        HeureDepart3 = new Choice();
        for (int j = 2011; j <= 2014; j++) {
            HeureDarrive3.add("" + j);
            HeureDepart3.add("" + j);
        }

        HeureDarrive4 = new Choice();
        HeureDepart4 = new Choice();
        for (int j = 0; j <= 23; j++) {
            HeureDarrive4.add("" + j);
            HeureDepart4.add("" + j);
        }

        HeureDarrive5 = new Choice();
        HeureDepart5 = new Choice();
        for (int j = 0; j <= 59; j++) {
            HeureDarrive5.add("" + j);
            HeureDepart5.add("" + j);
        }

        /*
         * Ajout de ces composants en spécifiant les contraintes de type
         * GridBagConstraints.
         */
        GridBagConstraints gbc = new GridBagConstraints();

        // ----------------------------------------------------------------------------------------
        gbc.gridx = gbc.gridy = 0;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // gbc.gridheight = 1;
        gbc.insets = new Insets(0, 5, 0, 0);

        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        this.add(infoLabel, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = gbc.gridy = gbc.gridwidth = gbc.gridheight = 1;
        /*
         * L'étiquette avec le nom sera alignée sur la ligne de base avec le
         * champ de saisie pour le nom.
         */
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(TypeTrans, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 2;
        gbc.gridy = 1;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(TypeTransChoice, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = gbc.gridwidth = gbc.gridheight = 1;
        gbc.gridy = 2;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(VilleDepartLabel, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = gbc.gridy = 2;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(VilleDepart, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 1;
        gbc.gridwidth = gbc.gridheight = 1;
        gbc.gridy = 3;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(VilleDarriveLabel, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 2;
        gbc.gridy = 3;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(VilleDarrive, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 1;
        gbc.gridwidth = gbc.gridheight = 1;
        gbc.gridy = 4;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(HeureDepartLabel, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 2;
        gbc.gridy = 4;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDepart1, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 3;
        gbc.gridy = 4;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDepart2, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 4;
        gbc.gridy = 4;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDepart3, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 5;
        gbc.gridy = 4;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDepart4, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 6;
        gbc.gridy = 4;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDepart5, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 1;
        gbc.gridwidth = gbc.gridheight = 1;
        gbc.gridy = 5;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(HeureDarriveLabel, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 2;
        gbc.gridy = 5;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDarrive1, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 3;
        gbc.gridy = 5;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDarrive2, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 4;
        gbc.gridy = 5;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDarrive3, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 5;
        gbc.gridy = 5;
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDarrive4, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 6;
        gbc.gridy = 5;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.fill = GridBagConstraints.HORIZONTAL; // étalons le sur l'espace
                                                  // disponible.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(HeureDarrive5, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 1;
        gbc.gridwidth = gbc.gridheight = 1;
        gbc.gridy = 6;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(NbrePlaceDispoLabel, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 2;
        gbc.gridy = 6;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(NbrePlaceDispo, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 1;
        gbc.gridwidth = gbc.gridheight = 1;
        gbc.gridy = 7;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(distanceLabel, gbc);
        // ----------------------------------------------------------------------------------------

        distance.setPreferredSize(new Dimension(40, 20));
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 2;
        gbc.gridy = 7;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(distance, gbc);
        // ----------------------------------------------------------------------------------------
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 1;
        gbc.gridwidth = gbc.gridheight = 1;
        gbc.gridy = 8;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(0, 5, 0, 0);
        this.add(numTransLabel, gbc);
        // ----------------------------------------------------------------------------------------

        numTrans.setPreferredSize(new Dimension(40, 20));
        // ----------------------------------------------------------------------------------------
        gbc.gridx = 2;
        gbc.gridy = 8;
        gbc.gridwidth = GridBagConstraints.REMAINDER; // dernier composant de la
                                                      // ligne.
        gbc.insets = new Insets(3, 5, 0, 5); // laissons tout de même une marge
                                             // à droite.
        gbc.anchor = GridBagConstraints.BASELINE; // alignons le sur la même
                                                  // ligne de base que son
                                                  // étiquette.
        this.add(numTrans, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridy = 9;
        gbc.gridx = 0;
        gbc.anchor = GridBagConstraints.CENTER;
        gbc.fill = GridBagConstraints.HORIZONTAL;
        gbc.insets = new Insets(3, 5, 0, 5);
        this.add(separator, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 0;
        gbc.gridy = 10;
        gbc.gridheight = GridBagConstraints.LINE_START;
        gbc.weighty = 1.;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE_LEADING;
        gbc.insets = new Insets(3, 0, 5, 5);
        this.add(AjouterModifier, gbc);
        // ----------------------------------------------------------------------------------------

        // ----------------------------------------------------------------------------------------
        gbc.gridx = 1;
        gbc.gridy = 10;
        gbc.weighty = 1.;
        gbc.fill = GridBagConstraints.NONE;
        gbc.anchor = GridBagConstraints.BASELINE;
        gbc.insets = new Insets(3, 0, 5, 5);
        this.add(Annuler, gbc);
        // ----------------------------------------------------------------------------------------

        this.setMinimumSize(new Dimension(800, 300));
        this.setLocationRelativeTo(null);
    }

    // permet de changer le titre de la fenetre
    public void changeTitre(String titre) {
        this.setTitle(titre);
    }

    // permet de changer le titre du bouton AjouterModifier
    public void changeLabelAjouterModifier(String titreBouton) {
        this.AjouterModifier.setText(titreBouton);
    }

    public void changeTrajetInitial(Trajet t) {
        // permet de fixer le contact qui est selectionné sur la fenetre1
        monTrajet = t;
    }

    public void initTrajet() {
        // remet vide les champ de text
        TypeTransChoice.select(0);
        VilleDepart.select(0);
        VilleDarrive.select(0);
        HeureDepart1.select(0);
        HeureDepart2.select(0);
        HeureDepart3.select(0);
        HeureDepart4.select(0);
        HeureDepart5.select(0);
        HeureDarrive1.select(0);
        HeureDarrive2.select(0);
        HeureDarrive3.select(0);
        HeureDarrive4.select(0);
        HeureDarrive5.select(0);
        NbrePlaceDispo.select(0);
        distance.setText("");
        numTrans.setText("");
    }

    public Trajet getTrajetInitial() {
        // donne le contact initial
        return monTrajet;
    }

    public Trajet getTrajetModifier() {
        // rend le Trajet une fois modifier
        Trajet monTrajetChange = new Trajet(Ville.toVille(getVilleDepart()),
                Ville.toVille(getVilleDarrive()), getDateDepart(),
                getDateDarrive(), new Transport(TypeTransport
                        .toTypeTransport(getTypeTransport()), getNumTrans(),
                        getNbrePlace()), getDistance());
        return monTrajetChange;
    }

    public int getMonOperation() {
        // recupere l'operation que l'on doit faire 1:ajouter, 2:modifier,
        // autre:il y a une erreur
        return operationAFaire;
    }

    public void setMonOperation(int type) {
        // fix l'operation cad si on est dans une fenetre pour ajouter ou une
        // fenetre pour modifier
        this.operationAFaire = type;
    }

    public void changeTrajet(Trajet t) {
        // affiche les informations du trajet selectionné sur la fenetre1
        // et met a jour le contact initial
        changeTrajetInitial(t);
        TypeTransChoice.select(t.getTransport().getType().getTransportString());
        VilleDepart.select(t.getVilleDepart().getVille());
        VilleDarrive.select(t.getVilleArrive().getVille());
        HeureDepart1.select("" + t.getDateDepart().getTime().getDay());
        HeureDepart2.select("" + t.getDateDepart().getTime().getMonth());
        HeureDepart3.select("" + t.getDateDepart().getTime().getYear());
        HeureDepart4.select("" + t.getDateDepart().getTime().getHours());
        HeureDepart5.select("" + t.getDateDepart().getTime().getMinutes());

        HeureDarrive1.select("" + t.getDateArrive().getTime().getDay());
        HeureDarrive2.select("" + t.getDateArrive().getTime().getMonth());
        HeureDarrive3.select("" + t.getDateArrive().getTime().getYear());
        HeureDarrive4.select("" + t.getDateArrive().getTime().getHours());
        HeureDarrive5.select("" + t.getDateArrive().getTime().getMinutes());
        NbrePlaceDispo.select("" + t.getNbPlaceDispo());
        distance.setText("" + (int) t.getDistance());
        numTrans.setText("" + t.getTransport().getNumTrans());
    }

    public String getVilleDepart() {
        return VilleDepart.getSelectedItem();
    }

    public String getVilleDarrive() {
        return VilleDarrive.getSelectedItem();
    }

    public String getTypeTransport() {
        return TypeTransChoice.getSelectedItem();
    }

    public int getNbrePlace() {
        return NbrePlaceDispo.getSelectedIndex();
    }

    public int getNumTrans() {
        int i = Integer.parseInt(numTrans.getText());
        return i;
    }

    public int getDistance() {
        int i = Integer.parseInt(distance.getText());
        return i;
    }

    public GregorianCalendar getDateDepart() {
        return new GregorianCalendar(HeureDepart3.getSelectedIndex(),
                HeureDepart2.getSelectedIndex(), HeureDepart1
                        .getSelectedIndex(), HeureDepart4.getSelectedIndex(),
                HeureDepart5.getSelectedIndex());
    }

    public GregorianCalendar getDateDarrive() {
        return new GregorianCalendar(HeureDarrive3.getSelectedIndex(),
                HeureDarrive2.getSelectedIndex(), HeureDarrive1
                        .getSelectedIndex(), HeureDarrive4.getSelectedIndex(),
                HeureDarrive5.getSelectedIndex());
    }

}
